/*
 * Copyright (c) 2018-2999 湖南洛云网络科技有限公司 All rights reserved.
 *
 * https://www.gz-yami.com/
 *
 * 未经允许，不可做商业用途！
 *
 * 版权所有，侵权必究！
 */

package com.yami.shop.user.comment.model;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * @author yami
 */
@Data
@TableName("tz_coupon")
public class Coupon implements Serializable {
    private static final long serialVersionUID = 8018312153820119913L;
    /**
     * 优惠券ID
     */
    @TableId
    private Long couponId;

    /**
     * 店铺ID
     */
    private Long shopId;

    /**
     * 优惠券名称
     */

    private String couponName;

    /**
     * 副标题
     */
    private String subTitle;

    /**
     * 优惠类型 1:代金券 2:折扣券 3:兑换券
     */
    private Integer couponType;

    /**
     * 使用条件
     */

    private Double cashCondition;

    /**
     * 减免金额
     */

    private Double reduceAmount;

    /**
     * 折扣额度
     */
    private Double couponDiscount;

    /**
     * 生效时间 1:固定时间 2:领取后生效
     */

    private Integer validTimeType;

    /**
     * 开始时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 结束时间
     */

    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 领券后X天起生效
     */

    private Integer afterReceiveDays;

    /**
     * 有效天数
     */

    private Integer validDays;

    /**
     * 库存
     */
    private Integer stocks;

    /**
     * 原始库存
     */
    private Integer sourceStock;

    /**
     * 适用商品类型 0全部商品参与 1指定商品参与 2指定商品不参与
     */

    private Integer suitableProdType;

    /**
     * 每个用户领券上限，如不填则默认为1
     */

    private Integer limitNum;

    /**
     * 版本号
     */
    private Integer version;

    /**
     * 是否积分优惠券 0不是 1是
     */
    private Integer isScoreType;

    /**
     * 积分价格
     */
    private Integer scorePrice;

    /**
     * 优惠券过期状态 0:过期 1:未过期
     */

    private Integer overdueStatus;

    /**
     * 优惠券投放状态 0:未投放 1:投放 -1取消投放
     */
    private Integer putonStatus;


    /**
     * 优惠券所在的店铺
     */
    @TableField(exist = false)
    private String shopName;
    /**
     * 优惠券数量
     */
    @TableField(exist = false)
    private Integer couponNum;

    /**
     * 获取方式
     */
    private Integer getWay;

}
